значения длиной 6 символов содержащие символы 0-9 и А-Я
Sym : Array[0..20] of char; // Тут массив букв, которые ты используешь... в нашем случае у нас 21 символ
Value : Array[0..5] of byte; // Тут значение очередного пароля в виде номеров символов... пароль из 6 символов
Функция перебора:
code: #delphi
Function GetNextValue : Boolean;
Var I : Integer;
Begin
Value[5] := Value[5] + 1; // Увеличиваем последнюю букву
// Проверяем, на переполнения... если больше 20 (а у нас Sym состоит из 0..20 символов), то увеличиваем следующий разряд
For I := 4 downto 0 do
Begin
If Value[I+1]>20 then
Begin
Value[I] := Value[I] + 1;
Value[I+1] := 0;
End;
End;
// Проверяем самый старший разряд на переполнение... если переполнен, значит все значения перебрали.
If Value[0]>20 then Result := False else Result := True;
// Значит, функция вернет True, если очередное значение было получено... и вернет False, если уже перебрали все значения
End;
Но в начале нужно заполнить переменную Sym и обнулить Value
code: #delphi
Var I : Integer;
S : String[6];
Begin
For I := 0 to 9 do Sym[I] := Ord('0')+I; // Значения с 0 по 9 - это будут цифры '0'..'9'
For I := 10 to 20 do Sym[I] := Ord('A')+I-10; // Остальные значения начнем с заглавной латинской буквы 'A' и т.д.
// Таким образом мы заполнили массив Sym значениями '0','1','2'....'8','9','A',B','C'.... значит и перебирать будем эти символы
For I := 0 to 5 do Value[I] := 0; // Обнулили массив Value
// А теперь начинаем перебирать
Repeat
For I := 0 to 5 do S[I] := Sym[Value[I]]; // Переводим из числового вида массива Value в строку из символов S
// Сейчас S и содержат нужную нам очередную строку... не знаю, что ты с ней хочешь делать... например, выведем ее в TLabel
Label1.Caption := S;
Label1.Refresh;
Until not GetNextValue;
End;